package thread;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 74646
 * Date: 2022-04-30
 * Time: 10:31
 */

/**
 * RUNNABLE：可工作的状态（正在工作或即将开始工作）
 * 就绪状态（1.正在CPU上执行。2.还未开始执行，但随时都可以执行
 * 处于就绪状态的线程，随时都可以被调度到 CPU 上
 * 如果代码中没有进行 sleep，也没有进行其他可能导致阻塞的操作时，代码大概率都是处于 RUNNABLE 状态
 */
public class TestDemo19 {
    public static void main(String[] args) {
        Thread t = new Thread(()->{
            while (true){
                // 循环体中不可以写内容，
                // 如果写了就不一定是 RUNNABLE 状态了
            }
        });
        /**
         * 一直持续不断的执行循环，t 线程就处于一种就绪状态
         * 系统随时都可以调度 t 线程上 CPU
         */
        t.start();

        /**
         *  此处的 sleep 是由于不确定是 t 线程先执行还是 main 线程先执行，
         *  所以在获取状态前调用 sleep 方法，先睡眠 1 秒再获取 t 线程的状态，
         */
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(t.getState());
    }
}
